home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 015a / qemm_man.zip / QEMM-TRB.TXT < prev   
Text File  |  1990-06-07  |  25KB  |  549 lines

  1. Using LOADHI without QEMM.SYS
  2.  
  3. You can use LOADHI with another 386 expanded
  4. memory manager if you have Quarterdeck's QRAM.
  5. This is is not as efficient on an 80386, 80386SX or i486 as
  6. QEMM's RAM parameter. LOADHI does require that
  7. you either have QEMM.SYS or QRAM.SYS.
  8.  
  9. Using QEMM-386 on 8088, 8086, or 80286 PCs
  10.  
  11. QEMM-386 only operates on an 80386, 80386SX or i486
  12. PC. If your PC does not have an 80386, Quarterdeck's
  13. QRAM programsupplies QEMM-386's LOADHI features,
  14. if you have EMS4 or EEMS expanded memory. On PS/2
  15. Model 50 and 60s, QEMM-50/60 also provides many of
  16. the same features of QEMM-386, provided you have the
  17. proper extra memory hardware.
  18.  
  19. PC does not function after booting with QEMM.
  20.  
  21. This may occur when QEMM and another device (or fea-
  22. ture) of your PC are unable to cooperate. This section-
  23. covers problems when just having DEVICE=QEMM.SYS
  24. in the CONFIG.SYS file causes the computer to "lock up".
  25. The next section covers problems with LOADHI--al-
  26. though the information here may prove to be useful as
  27. well. You may need a Boot Floppy to proceed, so be sure
  28. to have one ready (see Appendix B).
  29.  
  30. You must first figure out what the conflict is:
  31.  
  32. :~ If you have the RAM parameter on the QEMM.SYS
  33. line in the CONFIG.SYS file, remove the RAM
  34. parameter and reboot.
  35.  
  36. If the PC now functions correctly, then some area be-
  37. tween 640K and 1024K is being used by a device but the
  38. RAM parameter does not see the device. It thinks that it
  39. can put some high RAM into the same spot.
  40.  
  41. Check to see if any areas which are in the high RAM
  42. area are currently in use by another device--using
  43. QEMM.COM or Manifest First Meg Overview and
  44. QEMM Types displays,
  45.  
  46. The most common devices are video or network adap-
  47. ters. Usually QEMM can see these cards, but if areas that
  48. are "Mappable" or "Rammable" are in locations where an
  49. adapter already exists, then you should use the EX-
  50. CLUDE parameter on the QEMM.SYS line to force
  51. QEMM not to use these areas. If a network adapter has
  52. some RAM between 640K and 1024K that QEMM does
  53. not recogni~e, then that area should be excluded.
  54.  
  55. If removing the RAM option does NOT work, then add
  56. "X=OOOO-FFFF FRAME=NONE" to the QEMM.SYS line
  57. and reboot. If this works, type, QEMM ON, to see if
  58. QEMM can enter Virtual 8086 mode at all.
  59.  
  60. If you are NOT using the RAM parameter and the com-
  61. puter does not boot correctly, then there is another con-
  62. flict. Try adding parameters which disable automatic fea-
  63. tures of QEMM-386 such as NOCOMPAQFEATURES,
  64. NOTOPMEMORY, NOROMHOLES, NOFILL,
  65. NOVIDEOFILL, NOXBDA, NOSHADOWRAM, IG-
  66. NOREA20, NOROM, and NOSORT.
  67.  
  68. Normally you would not add all of these at once. In fact,
  69. adding one at a time and removing those that have no ef-
  70. fect would be the most efficient way to isolate a problem.
  71. You should remove any INCLUDE parameters, and
  72. specifically EXCLUDE areas you know may be in use by
  73. other devices. See Chapter 3, QEMM.SYS Programfor
  74. parameters and examine them to determine if there may
  75. be a conflict. Be sure to remove any extra parameters
  76. you try which don't seem to make any difference. A
  77. good starting point is "NOFILL NOSORT OFF". You
  78. may find that "IGNOREA20 DMA=64 NOROM" makes a
  79. difference. If it does, see the descriptions of these items
  80. to determine why these parameters are necessary. Some
  81. parameters may or may not make sense on your PC.
  82.  
  83. If you have a PC with Microchallnel Architecture, then
  84. the MCA.ADL file may INCLUDE areas for you which
  85. may not be correct. Manifest uses the same MCA.ADI.
  86. file, and the System Adapters display can show you the
  87. areas used by the adapters.
  88.  
  89. If you still haven't determined the conflict, then you
  90. should follow the instructions in Appendix C, to create a
  91. "pure environment" in order to isolate the exact problem
  92. which is causing the trouble.
  93.  
  94. PC does not function when using LOADHI
  95.  
  96. If your PC locks up" after using DESQview's XDV.COM,
  97. DV.COM, LOADHI.COM or LOADHI.SYS, (and having
  98. the RAM option does not cause trouble), then there is
  99. probably a memory conflict between 640K and 1024K
  100. (see above), but only when the conflicting memory is
  101. used. It's not always easy to tell which program using
  102. LOADHI is causing the problem, but a patient, sys-
  103. tematic approach (using LOADHI with one program at a
  104. time) is the fastest and most reliable method.
  105.  
  106. While the most common problem when loading items
  107. into high RAM is that the RAM area being loaded into is
  108.  
  109. 49   APPENDIX A: TROUBLESHOOTING
  110. actually used by something else, there are programs
  111. which are not capable of being loaded high. These
  112. programs may require addresses below 640K to work for
  113. example. As long as there is enough room to load the
  114. program (you can use the /GETSIZE option of LOADHI
  115. to be sure) most programs can be loaded into high
  116. memory. Watch the program's initialization display to
  117. see if it loads successfully.
  118.  
  119. If the problem is with DESQview's XDV.COM or
  120. DV.COM when running DESQview, then you can use the
  121. "/L" (no quotes) option of XDV.COM to determine the
  122. areas of high RAM which XDV is using to load the
  123. DV.EXE file into. You can then use the "/X=xxxx-yyyy"
  124. option to XDV.COM to specifically exclude areas which
  125. may be a problem. If you find an area, then use the EX-
  126. CLUDE parameter on the QEMM.SYS line to keep the
  127. area excluded. The /L and /X options to XDV.COM can
  128. both be used at the same time, and the /X option may be
  129. used more than once if needed.
  130.  
  131. Network drivers "lock up" or act unpredictably
  132.  
  133. This problemis probably a memory conflict with a
  134. memory area between 640K and 1024K. Token Ring,
  135. ARCnet, Proteon, Ethemet, and some others may not be
  136. "seen" by QEMM at boot time, so QEMM may have
  137. placed high RAM into the memory area used by the net-
  138. work card. Use the methods described previously to iso-
  139. late the conflicting area and EXCLUDE it on the
  140. QEMM.SYS line in the CONFIG.SYS file. You may even
  141. find the memory address listed when the network driver
  142. initializes, and most network cards list the addresses
  143. they use in their documentation.
  144.  
  145. Graphics programs have corrupted displays
  146.  
  147. The most likely cause of a graphics program having its
  148. display appear corrupted or "fuzzy" is that some high
  149. RAM has been placed into an area that the graphics
  150. adapter was not using until a particular program started
  151. using it. Removing any INCLUDE parameters and using
  152. the QEMM Analyze or Manifest QEMM Analyze display
  153. after running the graphics program should identify the
  154. area of conflict. You should then either EXCLUDE the
  155. video area being used (somewhere in the AOOO to CFFF
  156. area, but probably not all of it), and/or not use IN-
  157. CLUDE to put high RAM into as large an area.
  158.  
  159. Floppy drive does not work or reports "Drive not
  160. ready" when QEMM-386 is loaded
  161.  
  162. There are two reasons why the floppy drive may have
  163. trouble when QEMM-386 is loaded. The first, and most
  164. likely, is that you have used the ROM parameter with
  165. QEMM-386. The ROM parameter copies your ROM
  166. RAM and then maps the RAM into the same location
  167. where the ROM is. The result is that the ROM area is
  168. able to work much faster since it is now using RAM.
  169. However, some ROMs use "timing loops" to determine if
  170. the floppy drive is ready. Now that the ROM area is
  171. faster, the timing loop takes less time so the computer
  172. thinks that the drive is malfunctioning. You can either
  173. remove the ROM parameter or attempt to find the exact
  174. location of the floppy drive code (not easy to do) and use
  175. ROM=xxxx-yyyy to map the areas NOT involved with
  176. timing.
  177.  
  178. The second reason a floppy drive may not work correctly
  179. is that is uses DMA. Specifying DMA=64 on the
  180. QEMM.SYS line should correct this problem.
  181.  
  182. Attempting to LOADHI a program reports "Not
  183. enough room to load high"
  184.  
  185. When using LOADHI, a program needs its "normal"
  186. amount of memory in high RAM in order to get started.
  187. Many TSRs and device drivers take much more room to
  188. initially load into memory and then reduce their memory
  189. size to only the amount needed to stay resident. The
  190. /GETSIZE (/GS) parameter can be used with LOADHI to
  191. determine if this is happening. Using the Optimize pro-
  192. gram automatically keeps track of the amount of "run
  193. time" memory as well as its "resident" size for all
  194. programs in the CONFIG.SYS and AUTOEXEC.BAT files,
  195. and will try to find a way to place as many programs in
  196. high RAM as possible.
  197.  
  198. LOADHI fails with an SCSI disk drive controller
  199.  
  200. When using SCSI (or other "bus master") devices, the
  201. memory mapping feature of QEMM-386 is not seen by
  202. the disk controller; the "bus master" controller will "talk"
  203. to the memory directly. Since the controller doesn't
  204. know that the high RAM is being provided through
  205. memory mapping, and LOADHI is asking to place a pro-
  206. gram into memory the drive controller can't "see", LOAD-
  207. Hl doesn't work correctly. This is easily corrected by ad-
  208. ding DISKBUF=2 to the QEMM.SYS line. This parameter
  209. tells QEMM-386 to provide a disk buffer in "non-
  210. mapped" memory for the disk drive to use when it needs
  211. to. Higher numbers result in better disk performance,
  212. but increase the resident size of QEMM-386 below 640K.
  213.  
  214. QEMM-386 reports "not enough room to load"
  215.  
  216. If you have only lMB of memory on your 80386 and use
  217. the RAM parameter, it is possible that QEMM-386 will
  218.  
  219. 50   APPENDIX A: TROUBLESHOOTING
  220. not have enough memory to both load itself and fill in all
  221. of the unused high RAM areas. This is especially true on
  222. systems which use some of the extra memory to map
  223. ROM for themselves (Shadow RAM) without using
  224. QEMM's ROM parameter. Since the Shadow RAM is
  225. being used to map high RAM and possibly ROM, there
  226. isn't enough extended memory left over for QEMM-386
  227. to load its own program code! QEMM-386 does not run
  228. in Conventional or high RAM; it actually uses extended
  229. memory for the program code. The solution is to get
  230. more memory. In the meantime, you can use RAM=xxxx-
  231. yyyy to place high RAM into a smaller area in order to
  232. leave some memory free for QEMM to use, or you may
  233. not be able to use RAM at all.
  234.  
  235. Another reason this could happen is that QEMM-386 is
  236. not able to access the "extra" memory beyond 640K on
  237. your PC. QEMM-386 can find memory, but some PC
  238. manufacturers hide their extra memory or don't allow it
  239. to be extended memory. Once again, there won't be
  240. enough extended memory for QEMM-386 to load itself
  241. into. The ROM parameter uses memory too, and since
  242. the PC may already be performing a similar function,
  243. you should remove it until you get more memory.
  244.  
  245. PC boots but the keyboard does not work
  246.  
  247. If the keyboard does not respond to the familiar DOS
  248. prompt, then your PC may use the "A20" line in a non-
  249. standard way. The "A20" line is used to gain access to
  250. memory above 1024K and is thus very important to
  251. QEMM-386. Use of the UNUSUAL8042 parameter
  252. should correct this problem.
  253.  
  254. Using QEMM with Microsoft Windows
  255.  
  256. QEMM-386 will work with both Windows/286 2.xx and
  257. Windows/386 2.xx. There are several considerations for
  258. each.
  259.  
  260. For Windows/286 2.xx, QEMM-386 can provide ex-
  261. panded memory for all programs using Windows. The
  262. Windows/286 SETUP program will NOT complete if
  263. there is a valid DEVICE=QEMM.SYS line in the CON-
  264. FIG.SYS file. You may simply modify the CONFIG.SYS
  265. file temporarily by placing "REM" (without quotes) in
  266. front of the DEVICE=QEMM.SYS line. There is no need
  267. to reboot after having changed the CONFIG.SYS line,
  268. since the Windows 2.xx SETUP program only check to
  269. see if a valid line is there, and a line with REM in front
  270. of it is not valid. The Windows 2.xx SETUP program
  271. will then complete and Windows will be installed. You
  272. should NOT have Windows 2.xx install its "HIMEM.SYS"
  273. driver, since QEMM-386 provides an XMS interface al-
  274. ready. Be sure to remove the "REM" after the installation.
  275.  
  276. Windows/386 2.xx can NOT run with QEMM-386 active.
  277. However, the "Windows" portion of Windows/386 2.xx
  278. CAN be used. This is a program which comes with Win-
  279. dows/386 2.xx called WIN86.COM. This program will
  280. NOT run "off-the- shelf" programs in Windows, but will
  281. run any Windows-based programs. The WIN86.COM
  282. program may even be run inside DESQview.
  283.  
  284. I If you are running several Windows 2.xx programs, it
  285. may be advantageous to run theminside DESQview.
  286. This way, each Windows 2.xx program gets its own
  287. memory area to use and does not have to share the
  288. memory with other Windows 2.xx programs.
  289.  
  290. Using LOAI)HI FILES with Microsoft Windows
  291. (strange beeping when starting Windows)
  292.  
  293. Microsoft Windows 2.xx seems to not like having the
  294. DOS resource FILES loaded into high RAM. If there are
  295. fewer than 10 FILES resources below 640K, then Win-
  296. dows will usually act very strangely when started, and
  297. will never actually start working. You must have at least
  298. FILES=10 in your CONFIG.SYS file, and if you run other
  299. programs in DESQview before using Windows, you may
  300. need more before Windows will start. If the problem per-
  301. sists, try adding 5 more FILES at a time until it goes
  302. away. Once you've determined the minimum needed for
  303. Windows additional room for FILES can use LOADHI.
  304.  
  305. Lotus 1-2-3 Release 2.01 reports "Memory Full"
  306. even when there is lots of expanded memory still
  307. , available
  308.  
  309. When using very large spreadsheets in Lotus 1-2-3
  310. Release 2.01 or 2.2 (not Release 3), you may encounter a
  311. "Memory Full" message even though the Worksheet
  312. Status command (and DESQview's Memory Status win-
  313. dow) show plenty of expanded memory available. This
  314. is due to the way that 1-2-3 Release 2.01 stores data in ex-
  315. panded memory. The program only uses expanded
  316. memory to store floating point numbers and labels
  317. (strings of characters). In addition, it keeps track of these
  318. items by using the conventional memory area. So every
  319. item in expanded memory uses some conventional
  320. memory as well. Therefore it is possible to fill up all of
  321. conventional memory with integers and pointers to ex-
  322. panded memory and yet still have expanded memory
  323. left over. Lotus Development has published several ar-
  324. ticles on how to conserve conventional memory, and you
  325. may find that using LOADHI to increase your conven-
  326.  
  327. 51   APPENDIX A: TROUBLESHOOTING
  328. tional memory area will help as well. When using
  329. 1-2-3 inside DESQview, you should alter the "Maximum
  330. Program Memory Size (in K)" item for 1-2-3 to a large
  331. number to increase the amount of conventional memory
  332. available. Breaking the spreadsheet into several smaller
  333. pieces and using Release 2.2 or 3 are other alternatives.
  334.  
  335. Paradox 386 requires QEMM-386 to be ON
  336.  
  337. The current versions of Paradox 386 require that QEMM-
  338. 386 be in the ON state. If you are not using expanded
  339. memory or the RAM parameter, then you will need to ex-
  340. plicitly include the ON parameter on the QEMM.SYS
  341. line. Later versions of Paradox 386 may correct this
  342. anomaly.
  343.  
  344. Program reports a "Packed file corrupt" message
  345.  
  346. Some software packages are delivered in a "packed file"
  347. format. This allows more files to fit on the disk and also
  348. helps the program load faster. Due to a "bug" in some
  349. versions of DOS, the "unpacking" algorithm does not
  350. work if the program is loaded below 64K (not 640K, 64K)
  351. and the "A20" line is enabled. Since use of the LOADHI
  352. programs and other features of QEMM-386 can save a lot
  353. of memory, it is possible that the the area where
  354. programs are loaded may begin below 64K. If this hap-
  355. pens and the "A20" line is enabled (as it is on some com-
  356. puters and when DESQview is running) the "Packed file
  357. corrupt" message may appear. Usually you can add
  358. some DOS resources (BUFFERS is a good start) to use up
  359. some memory to get the starting address above 64K.
  360. Running the program in a slightly smaller DESQview
  361. window will also usually make the message go away
  362. when it appears in DESQview.
  363.  
  364. Programs report "Exception 13"
  365.  
  366. Exceptions are unusual or invalid conditions associated
  367. with the execution of a particular instruction of the 80386
  368. processor. The 80386 recognizes several different classes
  369. of exceptions, and assigns a different number to each
  370. class. QEMM-386 has been designed to capture these
  371. 80386 exception vectors and display them. Exception 13
  372. is the "General Protection Fault" error. Any privileged in-
  373. struction or any instruction that references memory incor-
  374. rectly can cause an Exception 13.
  375.  
  376. In the first case, privileged instructions, the Exception 13
  377. could indicate that a program has executed a privileged
  378. instruction or I/O reference. This could be a special in-
  379. struction which is only allowed in protected mode while
  380. the PC is not in protected mode. If this is the case the
  381. "Continue" option of the "Terminate, Reboot or Con-
  382.  
  383. 52   APPENDIX A: Tl~.
  384.  
  385. tinue?" prompt will tell the 80386 to reorder the ranking
  386. of privileged instructions and the program can continue
  387. to execute.
  388.  
  389. It is the second case, instructions that reference memory
  390. incorrectly, that are far more common to QEMM-386
  391. (and DESQview 386) users. Here the exception may indi-
  392. cate that the current program has a "bug" or has gone
  393. astray in some way. QEMM-386 has not necessarily
  394. caused the "bug" nor has it necessarily caused the pro-
  395. gram to act differently. QEMM-386 is just able to report
  396. the problem. The program may have overwritten some
  397. of its own memory and may in fact be running wild,
  398. writing data all over memory and executing instructions
  399. that don't belong to the program. At this point when
  400. "Terminate, Reboot or Continue" is displayed, the user
  401. can only "Terminate", and in fact it may not even be able
  402. to do that.
  403.  
  404. The technical description of what happens is that a
  405. WORD or DOUBLE WORD value has been written to or
  406. read from the last address of a segment. The "bug" in
  407. the program is that the value is not written to the first
  408. byte of the next segment, but rather wraps to the begin-
  409. ning of the current segment. This is probably not what
  410. was intended and, in fact, is not allowed on an 80386.
  411.  
  412. This problem may have existed in the program all along
  413. and not been noticed, or it may be due to the higher ad-
  414. dresses now being used when loading programs into
  415. high RAM. The programmer may have assumed that
  416. the program would never address such high numbers.
  417.  
  418. DESQview 386 users have two different things they may
  419. try to fix the problem. First, use Change a Program and
  420. try to allocate more memory to the application. Second,
  421. increase the Protection Level to 3. This will not alleviate
  422. the source of the Exception 13, but may allow you to find
  423. out sooner what is causing the exception.
  424.  
  425. When Exception 13 is seen outside of DESQview, it is
  426. usually not recoverable and often difficult to fix. If the
  427. program you are running is using 80386 protected mode,
  428. then perhaps it does not support VCPI (Virtual Control
  429. Program Interface). Since QEMM-386 is uses Virtual
  430. 8086 mode, such applications cannot be run under
  431. QEMM without VCPI. There is no choice but to reboot
  432. without QEMM, and contact the developer of the applica-
  433. tion to see if they intend on providing VCPI support.
  434.  
  435. If the program was not written for protected mode, then
  436. the problem is harder to fix. Write down the information
  437. displayed along with the Exception 13 message. The
  438. data displayed is the address of the rc when the excep-
  439.  
  440. ~OUBLESHOOTING
  441. tion occurred, the contents of the CPU's registers, and
  442. several bytes at the exception location. The data may be
  443. intermixed with the screen display, but it is locatable.
  444.  
  445. If any of the registers or the instruction address is 0000,
  446. or FFFE, or FFFF, then the problem is usually "segment
  447. wrap". After rebooting the computer, use LOADHI with
  448. no parameters to get a list of program addresses, or the
  449. Manifest First Meg Programs display to try and see
  450. which program was executing at the time of the excep-
  451. tion. If this program has been loaded into high RAM,
  452. then see if loading it below 640K or in a different loca-
  453. tion eliminates the problem. Sometimes loading
  454. programs in a different order helps, and sometimes ad-
  455. ding or subtracting one from your BUFFERS will change
  456. the location in memory enough to eliminate the problem.
  457.  
  458. Technical users can use the instruction bytes displayed to
  459. determine the exact instruction which caused the excep-
  460. tion. Using DEBUG and entering the values into
  461. memory allows you to "unassemble" the code and, along
  462. with the register values, understand the exact nature of
  463. the exception. This usually doesn't solve the problem,
  464. but it does show you that the exception 13 was caused
  465. by a genuine fault. Knowing which program caused the
  466. exception (it may be some resident program rather than
  467. the one you thought was executing) is crucial in solving
  468. an exception 13 problem. If you can't figure out which
  469. program causes the exception, you may need to create a
  470. "pure" environment. See Appendix C.
  471.  
  472. Maximum memory size programs in DESQview
  473.  
  474. When using DESQview, many people would like to have
  475. the largest possible program area in which to run their
  476. programs. Indeed, DESQview allows you to "re-use" the
  477. memory are below 640K many times, so having a large
  478. area is very important. You should be sure that the
  479. parameters (using Change a Program) for "Memory Size
  480. (in K)" is quite large (400K is a good number) and "Maxi-
  481. mum Program Memory Size (in K)" is even larger (800K
  482. will work). This makes sure that the window will be AT
  483. LEAST 400K in size, and then DESQview will allocate
  484. more up to the Maximum specified. (The 800K is far
  485. more than is even possible, so you're sure you get all of
  486. the rest without having to figure it out.) In order to gain
  487. the maximum size of memory, you should be using the
  488. XDV.COM program (or have copied XDV.COM to
  489. DV.COM, since DOS will allways load a ".COM" file
  490. before loading a ".EXE" file).
  491.  
  492. The XDV.COM program puts some of DV.EXE into High
  493. RAM. You can find out how much by adding "/L" (no
  494. quotes) to the XDV command line to get a display of the
  495. free areas, their size, and how much of DV.EXE is placed
  496. there. This points out an interesting dilemma: since
  497. LOADHI puts items into high RAM, and XDV puts
  498. pieces of DV.EXE there too, you may actually end up
  499. leaving some of DV.EXE in Conventional memory be-
  500. cause I OADHI has used up so much of it. You can check
  501. your free memory before running DESQview (with
  502. CHKDSK or Manifest) and then check the "Total Avail-
  503. able Conventional Memory" using DESQview's Memory
  504. Status command. You may want to evaluate what TSRs
  505. you are running before DESQview, perhaps they would
  506. be better run inside DESQview. This can free up memory.
  507.  
  508. Using memory in the most efficient way possible
  509.  
  510. One of QEMM's and QRAM's greatest features is that
  511. you can control the memory you have better than you
  512. ever could before. Many people want to make sure that
  513. the area between OK and 640K is as large as possible.
  514. Using high RAM and the LOADHI programs can go a
  515. long way to make sure that the conventional memory
  516. area is as big as possible. The OPTIMIZE program can
  517. assist in maximizing conventional memory by analyzing
  518. the possible methods of loading items into high RAM
  519. and placing them into the best possible location. Using
  520. Quarterdeck's Manifest program, you can observe how
  521. much memory is still being used below 640K by looking
  522. at the First Meg Programs display. The DOS Overview
  523. display will show you if more of DOS is being left below
  524. 640K that could be loaded high. A word of caution: you
  525. can spend a lot of time trying to get an extra few bytes of
  526. memory and not really gain much. Try to determine
  527. what the memory savings will be before attempting to
  528. spend a lot of time rearranging things. Loading TSRs
  529. and device drivers into high RAM is usually the quickest
  530. way to gain useful amounts of memory. On DOS 2.xx
  531. and 3.xx systems, loading BUFFERS into high RAM is
  532. easy and provides a lot of memory savings.
  533.  
  534. If you need more high RAM, then try QEMM-386s
  535. Analyze feature. There may be areas of memory be-
  536. tween 640K and 1024K that you are not using. You may
  537. also find that a particular adapter which is using a lot of
  538. memory addresses above 640K can either be removed or
  539. moved to a different location to get larger c(mtiguous
  540. areas of high RAM. Having many small areas of High
  541. RAM is not as useful as a few large contiguous areas.
  542.  
  543. If you are not using ANY programs which use graphics,
  544. or if some large programs you use don't need graphics,
  545. you can use the VIDRAM program to gain a significant
  546. amount of memory from your EGA or VGA adapter.
  547.  
  548. 53   APPENDIX A: TROUBLESHOOTING
  549.